//package com.jews.example.demo.controller;
//
//import com.jews.common.constants.CodeEnum;
//import com.jews.common.model.JsonObject;
//import com.jews.example.demo.domain.user.creator.UserCreator;
//import com.jews.example.demo.domain.user.mapper.UserMapper;
//import com.jews.example.demo.domain.user.request.UserCreateRequest;
//import com.jews.example.demo.domain.user.request.UserUpdateRequest;
//import com.jews.example.demo.domain.user.response.UserResponse;
//import com.jews.example.demo.domain.user.service.IUserService;
//import com.jews.example.demo.domain.user.updater.UserUpdater;
//import com.jews.example.demo.domain.user.vo.UserVO;
//import lombok.RequiredArgsConstructor;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.web.bind.annotation.*;
//
///**
// * @author JewsChen
// * @title: UserController
// * @date 2022/11/29 22:40
// */
//@RestController
//@Slf4j
//@RequestMapping("user/v1")
//@RequiredArgsConstructor
//public class UserController {
//
//    private final IUserService userService;
//
//    /**
//     * createRequest
//     */
//    @PostMapping("createUserAccount")
//    public JsonObject<Long> createUser(@RequestBody UserCreateRequest request) {
//        UserCreator creator = UserMapper.INSTANCE.request2Dto(request);
//        return JsonObject.success(userService.createUser(creator));
//    }
//
//    /**
//     * update request
//     */
//    @PostMapping("updateUserAccount")
//    public JsonObject<String> updateUser(@RequestBody UserUpdateRequest request) {
//        UserUpdater updater = UserMapper.INSTANCE.request2Updater(request);
//        userService.updateUser(updater);
//        return JsonObject.success(CodeEnum.Success.getName());
//    }
//
//    /**
//     * valid
//     */
//    @PostMapping("valid/{id}")
//    public JsonObject<String> validUser(@PathVariable Long id) {
//        userService.validUser(id);
//        return JsonObject.success(CodeEnum.Success.getName());
//    }
//
//    /**
//     * invalid
//     */
//    @PostMapping("invalid/{id}")
//    public JsonObject<String> invalidUser(@PathVariable Long id) {
//        userService.invalidUser(id);
//        return JsonObject.success(CodeEnum.Success.getName());
//    }
//
//    /**
//     * findById
//     */
//    @GetMapping("findById/{id}")
//    public JsonObject<UserResponse> findById(@PathVariable Long id) {
//        UserVO vo = userService.findById(id);
//        UserResponse response = UserMapper.INSTANCE.vo2CustomResponse(vo);
//        return JsonObject.success(response);
//    }
//}
